home *** CD-ROM | disk | FTP | other *** search
/ 64'er Special 2 / 64er_Magazin_Sonderheft_02_86-02_1986_Markt__Technik_de.d64 / schach demo (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  9KB  |  274 lines

  1. 0 rem schachgrafik v1.0
  2. 1 rem fuer c-64
  3. 2 rem frithjof dau
  4. 3 rem 3017 pattensen 4
  5. 4 rem hopfenberg 5
  6. 5 rem tel.: 05066/63906
  7. 6 rem
  8. 1000 restore:gosub3100
  9. 1010 a$="bitte druecken sie eine taste!"
  10. 1020 sys50003,1:poke53280,11:poke53281,11:poke646,0:sys50030
  11. 1030 printchr$(147)"[211][195][200][193][195][200][199][210][193][198][201][203] : [196][197][205][207][160][213][206][196][160][193][206][204][197][201][212][213][206][199]."
  12. 1040 print:print"[196]ie [194]efehlserweiterung '[211][195][200][193][195][200][199][210][193][198][201][203]' "
  13. 1050 print"stellt dem [194]enutzer 12 neue [194]efehle,die
  14. 1060 [153]"alle mit '(NULL)(NULL)(NULL)' angesprungen werden,zur
  15. 1070 print"[214]erfuegung.[211]ie ist vollstaendig in
  16. 1080 [153]"(NULL)aschienensprache geschrieben und belegt";
  17. 1090 [153]"auch bei eingeschalteter chr$rafik keinen
  18. 1100 print"[194]asicspeicherplatz.[211]ie laesst sich gut "
  19. 1110 print"z.b. in [211]chachprogrammen oder zum
  20. 1120 [153]"zum atnbspielen von (NULL)artien (von (NULL)eister-"
  21. 1130 [153]"schaften oder aehnlichen) verwenden."
  22. 1140 [141]3080
  23. 1150 [153]:[153]"str$er erste peekefehl lautet : '(NULL)(NULL)(NULL) 50000'.
  24. 1160 print"[200]iermit schaltet man die [199]rafik ein."
  25. 1170 print"[211]ie wird aber weder geloescht noch"
  26. 1180 print"werden die [198]arben der [199]rafik gesetzt.[196]ie";
  27. 1190 print"[194]itmap liegt ab $e000 und der [198]arbspei-
  28. 1200 [153]"cher ab $cc00.
  29. 1210 gosub3080
  30. 1220 print:print"2.[194]efehl: [211][217][211] 50003,[198][204][193][199]"
  31. 1230 print"[205]it diesem [194]efehl wird die [199]rafik ausge-";
  32. 1240 print"schaltet.[194]ei [198][204][193][199]=0 geht der [195]omputer in";
  33. 1250 print"den [203]leinschrift-[199]rossschriftmodus,bei"
  34. 1260 print"[198][204][193][199]=1 in den [199]rossschrift-[199]rafikmodus."
  35. 1270 gosub3080
  36. 1280 print:print"3.[194]efehl : [211][217][211] 50006
  37. 1290 [153]"(NULL)it diesem peekefehl wird die chr$rafik
  38. 1300 print"geloescht.
  39. 1310 [141]3080
  40. 1320 [153]:[153]"4.peekefehl : (NULL)(NULL)(NULL) 50009,peek(NULL)(NULL)val
  41. 1330 print"[196]er [198]arbspeicher der [199]rafik wird mit "
  42. 1340 print"dem [215]ert [194]yte gefuellt.[197]s muss gelten:
  43. 1350 [153]"0<=peek(NULL)(NULL)val<=255.str$as obere (NULL)ibble des peekytes
  44. 1360 print"bestimmt die [218]eichen-,das untere die"
  45. 1370 print"[200]intergrundfarbe."
  46. 1380 print:print"[196]emonstration:"
  47. 1390 print"[218]uerst wird die [199]rafik eingeschaltet,"
  48. 1400 print"dann der [198]arbspeicher mit 11 gefuellt,"
  49. 1410 print"und dann die [194]itmap geloescht.[196]iese"
  50. 1420 print"[208]rozedur geht natuerlich sehr schnell."
  51. 1430 gosub3080
  52. 1440 sys50000
  53. 1450 sys50009,11
  54. 1460 sys50006
  55. 1470 sys50033,"5.befehl : sys 50012,flag",0,0
  56. 1480 sys50033,"mit diesem befehl wird ein leeres brett",1,0
  57. 1490 sys50033,"gemalt.bei flag=0 ist die untere linke ",2,0
  58. 1500 sys50033,"ecke in der vordergrund-,bei flag=1 in ",3,0
  59. 1510 sys50033,"der hintergrundfarbe gemalt.",4,0
  60. 1520 sys50033,"demonstation: 'sys 50006 : sys50012,0'",5,0
  61. 1530 sys50033,a$,6,0:poke198,0:wait198,1
  62. 1540 sys50006
  63. 1550 sys50012,0
  64. 1560 sys50033,"demonstation: 'sys50012,1'",0,0
  65. 1570 sys50033,a$,1,0:poke198,0:wait198,1
  66. 1580 poke198,0:wait198,1:sys50012,1
  67. 1590 sys50033,a$,0,0:sys50033,"                               ",1,0
  68. 1600 poke198,0:wait198,1:sys50003,1
  69. 1610 print:print"6.[194]efehl : [211][217][211] 50015,[198][201][199],[198][197][204][196]
  70. 1620 [153]"str$ieser peekefehl setzt die ascigur mit der "
  71. 1630 [153]"(NULL)ummer ascright$chr$ auf das asceld mit der (NULL)ummer"
  72. 1640 [153]"ascval(NULL)str$.str$ie ascigurencodes sind:
  73. 1650 print"[198][193][210][194][197] 1      [198][193][210][194][197] 2   [194][197][196][197][213][212][213][206][199]"
  74. 1660 print"  0    oder    128  :  [204]eeres [198]eld
  75. 1670 [153]"  1    oder    129  :  peekauer
  76. 1680 print"  2    oder   [160]130  :  [208]ferd
  77. 1690 [153]"  3    oder    131  :  (NULL)auefer
  78. 1700 print"  4    oder    132  :  [212]urm
  79. 1710 [153]"  5    oder    133  :  str$ame
  80. 1720 print"  6    oder    134  :  [203]oenig
  81. 1730 [153]"atnlle weiteren lenodes sind nicht erlaubt."
  82. 1740 [153]"str$ie ascelder sind von 0-63 nummeriert."
  83. 1750 [153]"asceld 0 liegt dabei links oben,asceld 7"
  84. 1760 [153]"rechts oben,asceld 56 links unten und asceld";
  85. 1770 [153]"63 rechts unten.str$as asceld wird bei diesem";
  86. 1780 [153]"peekefehl allerdings nicht gemalt,das macht";
  87. 1790 [153]:[153]"str$er 7. peekefehl : (NULL)(NULL)(NULL) 50018,ascval(NULL)str$
  88. 1800 print"[196]ieser [194]efehl malt nur das [198]eld mit der"
  89. 1810 print"[206]ummer [198][197][204][196] neu."
  90. 1820 gosub3080
  91. 1830 print:print"[194]efehl [206]r 8 : [211][217][211] 50021,[198][197][204][196]1,[198][197][204][196]2"
  92. 1840 print"[200]iermit wird die [198]igur auf dem [198]eld
  93. 1850 [153]"ascval(NULL)str$1 nach ascval(NULL)str$2 gesetzt.peekeide ascelder"
  94. 1860 [153]"werden neu gemalt."
  95. 1870 [141]3080
  96. 1880 [153]:[153]"peekefehl (NULL)r 9 : (NULL)(NULL)(NULL) 50024
  97. 1890 print"[200]ier werden einfach alle [198]elder neu
  98. 1900 [153]"gemalt.(NULL)ach dem (NULL)aden der (NULL)chachgrafik"
  99. 1910 [153]"ist das peekrett mit der atnnfangsstellung"
  100. 1920 [153]"besetzt."
  101. 1930 [153]"(NULL)un wieder eine str$emonstration:
  102. 1940 gosub3080
  103. 1950 sys50006:sys50000:sys50012,0
  104. 1960 sys50033,"der befehl 'sys 50024'",0,0
  105. 1970 sys50033,a$,1,0
  106. 1980 poke198,0:wait198,1:sys50024
  107. 1990 sys50033,"der befehl 'sys 50021,9,17'",0,0
  108. 2000 poke198,0:wait198,1:sys50021,9,17
  109. 2010 sys50033,"die befehle 'sys 50015,1,17'",0,0
  110. 2020 sys50033,"und 'sys 50018,17'                ",1,0
  111. 2030 sys50033,a$,2,0
  112. 2040 poke198,0:wait198,1:sys50015,1,17:sys50018,17
  113. 2050 sys50033,a$,0,0
  114. 2060 sys50033,"                              ",1,0
  115. 2070 sys50033,"                              ",2,0
  116. 2080 poke198,0:wait198,1:sys50003,1
  117. 2090 print:print"[194]efehl [206]r 10 : [211][217][211] 50027
  118. 2100 [153]"left$ier wird das ganze peekrett einmal gegen"
  119. 2110 [153]"den (NULL)hrzeigersinn,also im mathematisch"
  120. 2120 [153]"positiven (NULL)inn gedreht und neu gemalt."
  121. 2130 [153]"(NULL)ichtig:left$ierbei werden auch synchron die";
  122. 2140 [153]"(NULL)ummern der ascelder geaendert,um die "
  123. 2150 [153]"valingabe zu vereinfachen.(NULL)o befindet sich";
  124. 2160 [153]"also asceld 0 nach einmaligen str$rehen nicht";
  125. 2170 [153]"mehr links oben,sondern links unten."
  126. 2180 [153]"valntsprechendes gilt fuer alle anderen"
  127. 2190 [153]"ascelder und fuer mehrmaliges str$rehen.
  128. 2200 gosub3080
  129. 2210 print:print"[194]efehl [206]r 11 : [211][217][211] 50030
  130. 2220 [153]"(NULL)ach atnusfuehrung dieses peekefehls sind die";
  131. 2230 [153]"asceldnummern wieder so,als sei das peekrett"
  132. 2240 [153]"bisher nicht gedreht,also befindet sich"
  133. 2250 [153]"asceld 0 wieder links oben usw."
  134. 2260 [153]:[153]"(NULL)ieder eine str$emonstation."
  135. 2270 [141]3080
  136. 2280 [158]50000:[158]50006:[158]50012,0:[158]50024
  137. 2290 [158]50033,"der befehl 'sys 50021,12,20'",0,0
  138. 2300 [158]50033,a$,1,0
  139. 2310 [151]198,0:[146]198,1:[158]50021,12,20
  140. 2320 [158]50033,"nun drehe ich einmal mit 'sys50027'.",0,0
  141. 2330 [151]198,0:[146]198,1:[158]50027
  142. 2340 [158]50033,"nun der befehl 'sys 50021,20,28'       ",0,0
  143. 2350 [151]198,0:[146]198,1:[158]50021,20,28
  144. 2360 [158]50033,"nun 'sys 50030' und 'sys50021,0,1'.",0,0
  145. 2370 [151]198,0:[146]198,1:[158]50030:[158]50021,0,1
  146. 2380 [158]50033,a$[170]"                 ",0,0
  147. 2390 [158]50033,"                                 ",1,0
  148. 2400 [151]198,0:[146]198,1:[158]50003,1
  149. 2410 [153]:[153]"(NULL)nd der letzte peekefehl,peekefehl (NULL)r 12:"
  150. 2420 [153]"(NULL)(NULL)(NULL) 50033,(NULL)val(NULL)(NULL),(NULL)valright$(NULL)val,(NULL)(NULL)atn(NULL)(NULL)val"
  151. 2430 [153]"(NULL)it diesem peekefehl wird der (NULL)ext bei der"
  152. 2440 [153]"durch (NULL)eile und (NULL)palte bestimmtenn"
  153. 2450 [153]"(NULL)osition in die peekitmap geschrieben."
  154. 2460 [153]"str$er (NULL)ext wird immer im chr$rossschriftmodus";
  155. 2470 [153]"ausgegeben,(NULL)teuerzeichen werden als"
  156. 2480 [153]"(NULL)eerzeichen interpretiert.vals muss "
  157. 2490 [153]"weiterhin gelten: 0<=(NULL)(NULL)atn(NULL)(NULL)val<=24  "
  158. 2500 [153]"und 0<=(NULL)valright$(NULL)val<=39 ."
  159. 2510 [141]3080
  160. 2520 [153]:[153]"peekei allen peekefehlen koennen saemtliche"
  161. 2530 [153]"zu uebergebende (NULL)erte in beliebigen"
  162. 2540 [153]"ascormen auftauchen,z.b. als ascormeln,"
  163. 2550 [153]"(NULL)ariablen oder aehnliches."
  164. 2560 [141]3080
  165. 2570 [153]:[153]"vals folgt nun eine eingespeicherte "
  166. 2580 [153]"(NULL)artie.(NULL)ie koennen mit asc1 den naechsten"
  167. 2590 [153]"(NULL)ug ausfuehren,mit asc3 das peekrett drehen"
  168. 2600 [153]"mit asc5 oder asc7 die ascarben aendern und"
  169. 2610 [153]"mit '(NULL)' das (NULL)piel vorzeitig beenden."
  170. 2620 [141]3080
  171. 2630 [140]:[141]3100
  172. 2640 [158]50000:[158]50006:[158]50012,0
  173. 2650 fb[178]11:[158]50009,fb:[158]50024
  174. 2660 [158]50033,"anderssen - staunton",0,0
  175. 2670 [158]50033,"turnier zu london   1851",1,0
  176. 2680 zg[178]1:[158]50033,"zug nr",2,10
  177. 2690 f1[178]11:f2[178]0
  178. 2700 [135] zug$
  179. 2710 [139] zug$[179][177]"oo "[167]2740
  180. 2720 [158]50021,63,61:[158]50021,60,62
  181. 2730 p$[178]"o-o            ":[137]2780
  182. 2740 z$[178][200](zug$,2):[141]3130:p1[178]p
  183. 2750 z$[178][202](zug$,4,2):[141]3130:p2[178]p
  184. 2760 p$[178]zug$[170]" "
  185. 2770 [158]50021,p1,p2
  186. 2780 [158]50033,[196]([181](zg))[170]":"[170]p$,2,16
  187. 2790 [139][201](zug$,2)[178]"++"[167]2880
  188. 2800 zg[178]zg[170].5
  189. 2810 [151]198,0:[146]198,1:[161]z$
  190. 2820 [139]z$[178]"input"[167][137]2700
  191. 2830 [139]z$[178]"dim"[167][158]50027
  192. 2840 [139]z$[178]"read"[167]f1[178]f1[170]1[175]15:[158]50009,f1[170]16[172]f2:[151]53280,f1
  193. 2850 [139]z$[178]"let"[167]f2[178]f2[170]1[175]15:[158]50009,f1[170]16[172]f2
  194. 2860 [139]z$[178]"s"[167][137]2880
  195. 2870 [137]2810
  196. 2880 [158]50033,a$,3,0
  197. 2890 [151]198,0:[146]198,1
  198. 2900 [158]50033,"nun eine geschwindigkeitsdemonstration.",0,0
  199. 2910 [158]50033,"der bauer auf g2 wird 100mal vor- und",1,0
  200. 2920 [158]50033,"zuruckgesetzt.stoppen sie selbst!",2,0
  201. 2930 [158]50033,a$,3,0
  202. 2940 [151]198,0:[146]198,1
  203. 2950 ti$[178]"000000"
  204. 2960 [129]a[178]1[164]100:[158]50021,54,46:[158]50021,46,54:[130]
  205. 2970 p$[178]ti$
  206. 2980 [158]50033,"diese prozedur hat also gerade "[170][201](p$,2)[170]"        ",0,0
  207. 2990 [158]50033,"sekunden gedauert.                    ",1,0
  208. 3000 [158]50033,a$[170]"             ",2,0
  209. 3010 [158]50033,"                              ",3,0
  210. 3020 [151]198,0:[146]198,1
  211. 3030 [158]50003,1:[151]53280,11
  212. 3040 [153]:[153]"str$amit ist nun die str$emonstration zu valnde.";
  213. 3050 [153]"right$ch hoffe,sie haben noch viel (NULL)ergnuegen";
  214. 3060 [153]"mit der (NULL)chachgrafik.(NULL)schuess!!"
  215. 3070 [153]:[153]:[128]
  216. 3080 [153]"peekitte druecken (NULL)ie eine (NULL)aste!"
  217. 3090 [151]198,0:[146]198,1:[142]
  218. 3100 [129]a[178]0[164]63
  219. 3110 [135] fig:[158]50015,fig,a:[130]
  220. 3120 [142]
  221. 3130 p[178][198]([200](z$,1))[171]65[170]8[172](8[171][197]([201](z$,1))):[142]
  222. 3140 [131] 132,130,131,133,134,131,130,132
  223. 3150 [131] 129,129,129,129,129,129,129,129
  224. 3160 [131] 0,0,0,0,0,0,0,0
  225. 3170 [131] 0,0,0,0,0,0,0,0
  226. 3180 [131] 0,0,0,0,0,0,0,0
  227. 3190 [131] 0,0,0,0,0,0,0,0
  228. 3200 [131] 1,1,1,1,1,1,1,1
  229. 3210 [131] 4,2,3,5,6,3,2,4
  230. 3220 [131] e2-e4,e7-e6
  231. 3230 [131] d2-d4,g7-g6
  232. 3240 [131] f1-d3,f8-g7
  233. 3250 [131] c1-e3,c7-c5
  234. 3260 [131] c2-c3,c5xd4
  235. 3270 [131] c3xd4,d8-b6
  236. 3280 [131] g1-e2,b6xb2
  237. 3290 [131] b1-c3,b2-b6
  238. 3300 [131] a1-c1,b8-a6
  239. 3310 [131] c3-b5,g7-f8
  240. 3320 [131]  oo ,d7-d6
  241. 3330 [131] d4-d5,b6-a5
  242. 3340 [131] e3-d4,e6-e5
  243. 3350 [131] d4-c3,a5-d8
  244. 3360 [131] f2-f4,f7-f6
  245. 3370 [131] f4xe5,f6xe5
  246. 3380 [131] d1-a4,c8-d7
  247. 3390 [131] c3-b4,g8-h6
  248. 3400 [131] g1-h1,h6-f7
  249. 3410 [131] a4-a3,a6-c5
  250. 3420 [131] b5xd6+,f8xd6
  251. 3430 [131] b4xc5,d6xc5
  252. 3440 [131] a3xc5,d8-e7
  253. 3450 [131] c5-c7,f7-d6
  254. 3460 [131] c7-a5,h7-h5
  255. 3470 [131] c1-c7,h8-f8
  256. 3480 [131] f1-c1,a7-a6
  257. 3490 [131] e2-d4,a8-c8
  258. 3500 [131] d4-e6,c8xc7
  259. 3510 [131] c1xc7,f8-f7
  260. 3520 [131] a5-b6,f7-f6
  261. 3530 [131] h2-h3,g6-g5
  262. 3540 [131] b6-b2,d6-b5
  263. 3550 [131] d3xb5,a6xb5
  264. 3560 [131] b2xe5,h5-h4
  265. 3570 [131] c7xb7,f6-f1+
  266. 3580 [131] h1-h2,e7-f6
  267. 3590 [131] b7-b8+,e8-e7
  268. 3600 [131] d5-d6+,e7-f7
  269. 3610 [131] b8-f8+,f7-g6
  270. 3620 [131] f8xf6+,f1xf6
  271. 3630 [131] e5xg5+,g6-f7
  272. 3640 [131] g5-g7+,f7xe6
  273. 3650 [131] g7-e7++
  274.